// 引入request请求函数
import { request } from '../../request/request'
import { showModal, showToast } from '../../utils/wxAsync'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 地址列表
    addressList: [],
    // 选中的地址id
    checkedId: 0,
    pageFrom: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const { pageFrom } = options || ''
    this.setData({
      pageFrom
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getAddressList()
  },
  // 发送请求，获取地址列表
  async getAddressList() {
    const res = await request({url: '/address/list'})
    console.log(res)
    let addressList = res.data
    let index = addressList.findIndex(item => item.is_default === 1)
    this.setData({
      addressList,
      // 设置选中的是默认地址
      checkedId: addressList[index].id
    })
  },
  // 点击删除图标，删除对应地址
  async handleDelete(e) {
    // 获取被点击地址的id
    const { id } = e.currentTarget.dataset
    // 显示对话框，询问用户是否要删除地址
    const result = await showModal({title: '提示', content: '您确定要删除该地址吗？'})
    console.log(result)
    // 若用户点击确定,发送请求，删除地址; 若点击取消，直接return
    if (result.cancel) {
      return
    }
    const res = await request({url: '/address/delete', data: { id }, method: 'POST'})
    this.getAddressList()
  },
  // 根据上一页面判断操作
  handleOperation(e) {
    const { id } = e.currentTarget.dataset
    let { pageFrom, addressList } = this.data
    // 若上一页面是个人中心，则点击事件为编辑地址
    if (pageFrom === 'user') {
      wx.redirectTo({
        url: '/pages/address_edit/address_edit?id=' + id
      })
    } else {
      // 若上一页面不是个人中心，则点击事件为选中地址
      let checkedAddress = addressList.filter(item => item.id === id)
      wx.setStorageSync('checkedAddress', checkedAddress[0])
      wx.navigateBack({
        delta: 1
      })
    }
  }
})